T-STUDIO

コラム・雑感

Dreamweaver CS4のSubversion機能で注意しておきたいこと [Dreamweaver]

Dreamweaver CS4は、一部の方には念願(?)のSubversionと連携することが可能となりました。これまでも、マイクロソフトのVisual Souce Safe(以下VSS)とは連携してバージョン管理のようなことを行うことは出来ていたようですが(機能があるのは知っていたものの使ったことがない:笑)、オープンソースで導入しやすいSubversionとの連携については、これまでサードパーティー製の拡張機能を使ってのみ可能で、Dreamweaver単体では出来ていませんでした。そんなSubversion連係機能ですが、一つ注意しておく点をご紹介します。

思い立って一気に書いているので、解説的なイメージは夜にでもアップしますと前置きをしつつ・・・

Dreamweaver CS4のSubversionの設定は、サイト毎に行います。このとき、従来のサイト設定ダイアログ内のカテゴリ部分に「バージョンコントロール」という項目が追加されており、そこからSubversionのリポジトリを設定します。注意しておきたい点というのは、従来チェックインチェックアウトという、サイト制作を共同で行っているときに便利な機能がありましたが、この従来のチェックイン・チェックアウト機能との併用は出来ないと言うことです。

通常の使用で両方を併用するというシーンはなかなか考えられないと思われますが、Dreamweaverは、これまで「ローカル情報」「リモート情報」「テストサーバー」の3つでサイトのファイル管理を定義することが出来ました。「ローカル情報」は、いわゆるクライアントPCに保存されているサイトデータの場所を設定する項目。[ローカルルートフォルダ]でサイトデータのディレクトリを指定します。

「リモート情報」は、ローカルで作成したファイルをアップする場所を指定するための項目。ファイルのアップ方法にはFTP(SFTP)、ローカル/ネットワーク、WebDav、RDSといった形で共有もしくはアップするフォルダを指定します。これまでチェックイン・チェックアウト機能を活用していた人は、この項目の中の[チェックイン/チェックアウト]にチェックを入れて、メールアドレスやチェックアウト名を入力することで、例えば社内サーバを経由して複数のスタッフと共同作業する際に、活用できます。

「テストサーバー」に関しては、ASPやPHP、ColdFusion、JSPといったサーバーサイド技術を使ったサイト制作時のテスト環境先のサーバを指定することが出来るので、今回ここでは詳解は割愛しますが、そういったことを指定するところです。

さて、注意しておく点というのは、DreamweaverをSubversionとつなげると、Subversionに「チェックイン・チェックアウト」コマンドが渡されることになり、「リモート情報」で設定できる[チェックイン/チェックアウト]がグレーアウトされて機能しなくなります。これ自体はそういう仕様と言うことで問題はないのですが、一つの使い方として以下のようなことを想定する場合にはということで、知っておくと良いかと思います。

ファイルのバージョン管理を行うために「バージョンコントロール」の項目でSubversionのリポジトリへつなげつつ、リモート情報に社内の確認環境用のサーバやもしくは本番環境用のサーバの設定をし、ローカルとリモートの間でチェックイン・チェックアウト機能を使いたいということをもし想定しているようだと、それは出来ないと言うことになります。

したがって、確認サーバや本番環境用サーバに対してチェックイン・チェックアウト機能を使いたいということであれば、別途サイト定義でバージョンコントロールをオフにした同一のサイトを定義し、「リモート情報」のところでチェックイン・チェックアウト機能を有効にすると言うかなり荒技が必要になります。

実際には、この方法はあまりオススメできず、せっかくバージョンコントロールの管理下にあるはずのファイルが、そこから離れたところで別の同期情報をもつことで、より複雑化したファイル管理になってしまうため、バージョンコントロールをONにしたときは、リモート情報でのやりとりは最新のファイルのアップと不要なファイルの削除を中心としたワークフローにした方が、安全ではないかなと思います。

もともと、チェックイン・チェックアウト機能は、共同作業において例えば、「Aさんがfoo.htmlを編集しているときにBさんに対してfoo.htmlはAさんが編集してますよ」というのを知らせるための機能で、「デザインノート」ファイルとロックファイル(拡張子.LCK)を使ってDreamweaver上で他の人がファイルの編集をできないようにする機能です。とはいえ、ロックファイルの情報を無視して編集し強制的に上書きすることも可能で、実際には先の例でもBさんはfoo.htmlを編集することができます。これにより、AさんとBさんが同じファイルを編集し、Aさんが編集しアップしたファイルをBさんがアップして上書きしてしまいます。このとき、それぞれが別の部分を編集していると、当然Bさんによって上書きされてしまったためAさんが編集した部分は向こうとなってしまいます。

これは、別にチェックイン・チェックアウト機能に限らずとも起こりうる可能性のある問題であって、こうした共同作業での作業上発生する問題を解決する手段としてSubversionでバージョン管理を行うようになっています。先の例のような場合、AさんもBさんも同じ内容のファイルを同時に編集しても、Aさんが先にアップしたら、それまでのファイルとの差分情報をSubversionが記録しているため、Bさんがファイルをアップしようとすると不整合によるエラーを返してきます。そこで、Bさんはこれまでの編集をあきらめて(笑)、Aさんが編集したファイルを落としてBさんが必要な編集をおこなうことや、Bさんの編集しているファイルにAさんが編集した部分を追加してファイルをアップすると言った選択肢が設けられるようになるため、これまで以上にファイルを安全に管理することが出来るようになります。

ちなみに、Dreamweaver CS4のSubverrsion機能ではファイルのコミットとチェックアウト、履歴表示などは可能ですが、ファイルの比較やマージについては単独では対応していません。これは、別途Dreamweaver内の環境設定で「ファイル比較」ツールを設定することで、ファイル比較機能と連動して活用できるようになります。

さくっと書くつもりが長くなってしまいましたが、従来のチェックイン・チェックアウト機能を使いたい場合はSubversion機能は使えない、Subversion連携機能を使って安全なファイル管理を行いたい場合は、従来のチェックイン・チェックアウト機能は使えないと言うことを覚えておいてもらえたら幸いです(笑)


Posted by TOM at 2008年12月25日(木) 14時12分   この記事の関連リンク ( 0 )   この記事へのコメント ( 2 )     このエントリーを「はてなブックマーク」に追加   このエントリーをdel.icio.usに追加

関連リンク

この記事のURL

http://www.t-studio.com/column/tb.php?ID=503

コメント

我流さん>
たぶん、今後出てくるであろう問題として、大好きな(笑)Contributeでの運営との整合性かもしれませんね。
Contributeでサーバー側と直接チェックイン・チェックアウト機能を使って更新しつつ、バージョン管理も同時に行いたいという場合や、Contributeをページ量産的に使用してWebマスターがDreamweaverで管理すると行った場合にも、問題が出てきそうです。
ちょっと困った仕様かなぁと今更ながら思っています。

TOM 2009年01月06日 17時28分 [削除]

こんにちわ。
まだCS4は導入していませんが、私も同じ事で悩んだ事があります。
結局、こう運営するのが楽なのかなーと考えてました。

・DW CS4:通常のチェックイン/アウト
・バージョン管理:他のSubversionクライアントソフトで管理
・DWで同期→別ソフトでSuvbersionにコミット

実際にまだCS3ですが上記のような形で運営してるサイトがあります。
どうしてもDWで同じ領域を多重にサイト管理するのが怖くて、、、。

DWの方では、[.svn]を同期の対象外に指定する必要が出てきますが、
Cloak/Uncloak SCM Directoriesというプラグインでクローク解除してます。
(ご存知とは思いますが)

ケースバイケースで良い運営方法が確率するといいですね。

我流 2008年12月25日 17時30分 [削除]

コメント投稿フォーム

名前: (この情報をCookieに保存させたい場合にチェック)
メールアドレス: (表示はされません)
URL: (名前にリンクされて利用されます)
コメント:
パスワード: (削除時に利用)

ページのトップへ ページのトップへ

カテゴリーリスト